Klassen und Structs
Klassen sind Referenztypen, Structs sind Werttypen. Objekte von Klassen liegen am Heap, Objekte von Structs am Methoden-Stack (bzw. sind sie in andere Objekte eingebettet).
- Structs sind leichtgewichtiger als Klassen, da sie den
Garbage-Collector nicht belasten. Sie werden häufig für einfache
Datenobjekte ohne Methoden eingesetzt, die außerdem nur temporär in
einer Methode oder als Teil eines anderen Objekts verwendet werden.
Structs können nicht durch Vererbung erweitert werden. Daher werden sie
selten zum Aufbau komplexer Datenstrukturen verwendet.
- Klassen werden häufig für komplexere Objekte mit Methoden verwendet
sowie zum Aufbau dynamischer Datenstrukturen (Listen, Bäume und Graphen),
die über Zeiger verkettet sind. Objekte von Klassen sind meist nicht nur
lokal zu einer Methode, sondern sind Teil einer globalen Datenstruktur am Heap.
Bei Klassen kann man Vererbung und dynamische Bindung voll nutzen.
|